package agenda.datos;

import es.uji.www.GeneradorDatosINE;

import java.util.ArrayList;
import java.util.Arrays;

public class Agenda {
    
    
  private final static int NROREGISTROS = 100;
  

  //private Entrada listaDeEntradas[] = new  Entrada[NROREGISTROS] ;
  public ArrayList<Entrada> listaDeEntradas=new ArrayList<>();
  public int nroReg = 0 ;
   

  public void procesar () {
	  GeneradorDatosINE generator = new GeneradorDatosINE() ;
	  EntradaEx reg ;
	  String nombre  ;	
	  String apellido ;
	  String tf ;
	  String direccion;
	  int edad;
	  for(int i=0;i<90;i++) {   
		  
	     nombre = generator.getNombre () ;	
	     apellido = generator.getApellido() ;
	     tf = ""+i ;
	     edad= i/6+10;
	     //direccion=generator.getPoblacion(direccion);
	     direccion="CASTELLON" ;
	     reg  = new  PersonaEx ( nombre,tf,direccion, apellido, edad);
	     nuevoRegistro (reg );
	     		
	     nroReg+=1;
	  }
  }
  
  public int nuevoRegistro(Entrada entrada){
	listaDeEntradas.add(entrada) ;
	return listaDeEntradas.size() ; 
  }
  public ArrayList<Entrada>listarEntradas() throws ExcepcionAgendaVacia {
  //public Entrada[] listarEntradas() throws ExcepcionAgendaVacia {
            
      //if (nroReg==0)
      //	    return null;
      //	else 
      //	return Arrays.copyOfRange(listaDeEntradas,0,nroReg);
      
	if (listaDeEntradas.isEmpty()) throw new ExcepcionAgendaVacia();
	return listaDeEntradas ;      
  }

  

  
  
  
  public ArrayList<Entrada> buscar(String nombre) throws ExcepcionEntradaNoEncontrada{
      //Entrada[] buscarTodos=new Persona[NROREGISTROS];
      ArrayList<Entrada> buscarTodos= new ArrayList<>();
      //int j=0;
      for(Entrada p:listaDeEntradas) {
          if(nombre.equalsIgnoreCase(p.getNombre())) {
              buscarTodos.add(p);
          }
      }
      if (buscarTodos.size()>=0){
      return buscarTodos;
      } else {
	  throw new ExcepcionEntradaNoEncontrada("Nombre no se ha encontrado");
      }
  }

  public int entradasAgenda() {
	return nroReg ; 
}

//  public Boolean nueva(String nombre, String apellido, String telefono) {
//      if (nroReg == NROREGISTROS) {
//          return false;
//      } else {
//	  listaDeEntradas[nroReg] = new Persona(nombre, apellido, telefono);
//          nroReg += 1;
//          return true;
//      }
//  }
  public Boolean nueva(Entrada reg) {
	    listaDeEntradas.add(reg);
	    nroReg += 1;
	    return true;
  }  
  
  

  

public void generaDatosXML(){
	  GeneradorDatosINE generator = new GeneradorDatosINE() ;
	  Entrada regEntrada;
	  String nombre  ;	
	  String apellido ;
	  String tf ;
	  for(int i=0;i<90;i++) {   
		  
	     nombre = generator.getNombre () ;	
	     apellido = generator.getApellido() ;
	     tf = ""+i ;
	     regEntrada  = new  Persona(nombre,apellido,tf);
	     
	     nuevaEntrada ( regEntrada );
	     		
	     nroReg+=1;
	  }  
}


public int nuevaEntrada(Entrada entrada){
	listaDeEntradas.add(entrada) ;
	return listaDeEntradas.size() ; 
}



}